package com.swt.gap.service;

import com.swt.gap.common.PageResult;
import com.swt.gap.model.entity.SysRole;
import com.swt.gap.model.entity.SysUser;
import com.swt.gap.model.vo.UserAddVO;
import com.swt.gap.model.vo.UserEditVO;
import com.swt.gap.model.vo.UserInfoVO;
import com.swt.gap.model.vo.UserVO;

import java.util.List;

/**
 * @Author tyh
 * @Date 2020/4/15 21:27
 */


public interface SysUserService {

    /**
     * 新增用户
     */
    Integer addNewUser(UserAddVO userAddVO);
    /**
     * 判断用户名是否重名
     */
    Boolean judgeName(String userName, Integer userId);

    Integer updateName(String userName, Integer userId);

    Integer deleteUser(Integer userId);

    //根据id获取用户信息
    UserInfoVO getUserInfo(Integer userId);

    //获得分页用户列表
    PageResult<UserInfoVO> getUserListByPage(Integer pageNum, Integer pageSize, String key, Integer roleId);

    PageResult<UserInfoVO> listUser(Integer pageNum, Integer pageSize, String keyword, Integer departmentId);

    Integer resetPassword(Integer userId);

    //修改用户密码
    Integer updateUserPassword(Integer userId, String newPassword);

    //判断用户密码是否正确
    Boolean judgePassword(Integer userId, String password);

    SysUser getUserByName(String userName);

    Integer getUserIdByName(String userName);

    //获取所有未删除用户id和用户名
    List<UserVO> getUsers();

    Integer updateUser(UserEditVO userEditVO);

    PageResult<UserInfoVO> listUserByDepartmentId(Integer pageNum, Integer pageSize, String keyword, Integer departmentId);

    PageResult<UserInfoVO> listUserByGroupId(Integer pageNum, Integer pageSize, String keyword, Integer groupId);

    List<SysRole>listUserAccessRole(Integer userId);

    Boolean hasAdminPerms();
}
